<?php

/*
调用方式：
1）动态形式
  $total=50;
  $pagesizes=1;
  $url="";
  echo $pageclass->showpage2($page,$pagesizes,$total,$url,false,"act",$showshow=6)
2)伪静态模式
  $total=50;
  $pagesizes=1;
  $url="/apagecss-{page}.html";
  $url="/pagecss-$idp/page-{page}.html";
  echo $pageclass->showpage2($page,$pagesizes,$total,$url,false,"ht",$showshow=6)
 */
class PageModel {
	
    ///调用入口分页入口

    public static $localurl="";

    /*
     * $_page:当前页面
     * $_pagesizes:每页显示页数
     * $_total 一共的新闻条数
     * $url 为空时，自动获取，否者给一个参数 :参数中必须有‘{page}’的字符串,eg:/news-1/page-{page}.html
     * $xialakuang 是否显示下拉框的页面跳转
     * $act 匹配 page 参数的方式
     * $showshow: 显示多少个页面数量
     * showpage2($_page,$_pagesizes,$_total,$url="",$xialakuang=false,$act="act",$showshow=6)
     */
    public static function  showpage($_page,$_pagesizes,$_total,$url="",$xialakuang=false,$act="act",$showshow=6)
    {
        if($_total == 0)
        {
            return "";
        }
            if(empty($_page))
            {
                    $_page=1;
            }
            $_page=(int)($_page);
            if($_pagesizes<$_total)
            {
                    $_pagecounts=1;
            }
            $_pagecounts=ceil($_total/$_pagesizes);
            if($_page<=0)
            {
                    $_page=1;
            }
            if($_page>$_pagecounts)
            {
                    $_page=$_pagecounts;
            }
            if(empty($url))
            {
                    $url=$_SERVER["REQUEST_URI"];
            }
            $url = str_replace('//', '/', $url);

            if($act=="ht")
            {
                    ///静态模式的时候，先判断其他的参数是否为空


            }

            if($_pagecounts>1)
            {
                    return self::csspage2($_page,$_pagecounts,$url,$xialakuang,$act,$showshow);
            }else
            {
                    return "";
            }
    }
    public static function  showpage2($_page,$_pagesizes,$_total,$url="",$xialakuang=false,$act="act",$showshow=6)
    {
        if($_total == 0)
        {
            return "";
        }
            if(empty($_page))
            {
                    $_page=1;
            }
            $_page=(int)($_page);
            if($_pagesizes<$_total)
            {
                    $_pagecounts=1;
            }
            $_pagecounts=ceil($_total/$_pagesizes);
            if($_page<=0)
            {
                    $_page=1;
            }
            if($_page>$_pagecounts)
            {
                    $_page=$_pagecounts;
            }
            if(empty($url))
            {
                    $url=$_SERVER["REQUEST_URI"];
            }
            $url = str_replace('//', '/', $url);

            if($act=="ht")
            {
                    ///静态模式的时候，先判断其他的参数是否为空


            }
			return self::csspage2($_page,$_pagecounts,$url,$xialakuang,$act,$showshow,$_total);
            // if($_pagecounts>1)
            // {
            //         return self::csspage2($_page,$_pagecounts,$url,$xialakuang,$act,$showshow,$_total);
            // }else
            // {
            //         return "";
            // }
    }
    /*
     * $url 传递的内容,
     * $act 返回方式	ht:自定义伪静态模式，act=动态模式, w=htaccess中的伪静态规则  bzy=半支烟习惯
     * $_page 传递的页数 */
    public static function _backurl2($url="",$act="ht")
    {
            //处理page的名字参数
            if(empty($url))
            {
                $url=$_SERVER["REQUEST_URI"];
            }
            $pos2=substr_count($url,"?");
            if($pos2>0)
            {///动态地址
                    $_url1=explode("?",$url);

                    $_url11=$_url1[1];
                    $_url2=explode("&",$_url11);

                    $_arr=array();
                    foreach($_url2 as $val)
                    {
                            $_val=explode("=",$val);
                            if($_val[0]!="page")
                            {
                                    $_arr[$_val[0]]=$_val[1];
                            }
                    }

                    if($_arr)
                    {
                            foreach($_arr as $key=>$val)
                            {
                                    $_arr2[]=$key.'='.$val;
                            }

                            $_url=implode("&",$_arr2);
                            return $_url1[0].'?'.$_url;
                    }else
                    {
                            return $_url1[0];
                    }

            }else
            {

                    return $url;
            }
    }
    ///$page 传递页面
    public static function getPrintPage($url,$page,$act='act')
    {

            if($act=="act")
            {
                    $pos = substr_count($url, "?");

                    if($page>1)
                    {
                            if ($pos == 0)
                            {
                                    $url = $url . "?page=" . $page;
                            }else
                            {
                                    $url = $url . "&page=" . $page;
                            }
                    }

                    return $url;
            }else
            {

                    if($page==1)
                    {

                            $tihuan_arr['page-{page}.html']='';
                            $tihuan_arr['-{page}']='';
                            $url=strtr($url,$tihuan_arr);
                    }
                    $url = str_replace('{page}', $page, $url);


                    return $url;
            }
    }
    /*
     * $page:当前页	
     * $pagecounts一共的总页数
     * $showpage 显示出几个页面的链接
     */
    public static function csspage2($_page,$_pagecounts,$url,$xialakuang,$act,$_showpage,$total=0)
    {
			$url=self::_backurl2($url,$act);
			$_sp = "&";
			if(!strpos($url,'?')){
				$_sp = "?";
			}
        //     $tihuan_arr['--']='-';	
        //     $url=strtr($url,$tihuan_arr);

            if($_page<=0)
            {
                $_page=1;
            }
            if($_page>$_pagecounts)
            {
                $_page=$_pagecounts;
            }

			$div = '<div style="margin:0 auto;text-align:center;">';
			$s1 = '<span>当前第 '.$_page.' 页,共 '.$total.' 条记录</span>';
			if($_page > 1){
				$first='<a href="'.self::getPrintPage($url, $_page-1).'" class="prev" style="background-color: #ffffff;border: 1px solid #2d8cf0;padding: 2px 5px;margin: 0 10px;"> 上一页 </a>';
			}else{
				$first='<a href="javascript:;" class="prev" style="background-color: #cccccc;border: 1px solid #2d8cf0;padding: 2px 5px;margin: 0 10px;"> 上一页 </a>';
			}
			if($_page < $_pagecounts ){
				
				$end='<a href="'.self::getPrintPage($url, $_page+1).'" class="next" style="background-color: #ffffff;border: 1px solid #2d8cf0;padding: 2px 5px;margin: 0 10px;"> 下一页 </a>';
			}else{
				$end='<a href="javascript:;" class="next" style="background-color: #cccccc;border: 1px solid #2d8cf0;padding: 2px 5px;margin: 0 10px;"> 下一页 </a>';
			}

			$jump = ' <span>跳转 <input style="width:50px; height:25px; text-align:center;" type="text" name="page" value="'.$_page.'" data-sp="'.$_sp.'" data-url="'.$url.'" onkeypress="javascript:if (event.keyCode == 13){var p=this.value;url=this.dataset.url;var sp=this.dataset.sp;url=url+sp+\'page=\'+p;if(parseInt(p)>0){document.location=url;} }"> 页</span>';
			$str = $s1.$first.$end.$jump;
			$div2 = '</div>';
			return $div.$str.$div2;
//             $first='<a href="'.self::getPrintPage($url, $_page-1,$act).'" class="prev"> 上一页 </a><a href="'.self::getPrintPage($url, 1,$act).'">1</a><a href="'.self::getPrintPage($url, 2,$act).'">2</a><span class="lue">...</span>';
//             $end='<a href="'.self::getPrintPage($url, $_pagecounts,$act).'">'.$_pagecounts.'</a><a href="'.self::getPrintPage($url, $_page+1,$act).'" class="next"> 下一页 </a>';


//             $psind=0;
//             $strs='<div class="gpage">';
//             if($_page>$_showpage)
//             {
//                     $strs.=$first;
//                     $pind=$_page%$_showpage;
//                     if($pind==0)
//                     {
//                             $psind=floor($_page/$_showpage);
//                             $psind=$psind*$_showpage-($_showpage-1);
//                             $peind=$psind+($_showpage-1);
//                     }else
//                     {
//                             $psind=floor($_page/$_showpage);
//                             $psind=$psind*$_showpage+1;
//                             $peind=$psind+($_showpage-1);
//                     }

//             }else
//             {
//                     $psind=1;
//                     $peind=$_showpage;
//             }
//             if($peind>$_pagecounts)
//             {
//                     $peind=$_pagecounts;
//             }
//             $pagestr="";
//             if($psind==0){$psind=1;}
//             for($i=$psind;$i<=$peind;$i++)
//             {
//                     if($_page==$i)
//                     {
//                             $pagestr.='<span class="on">'.$i.'</span>';
//                     }else
//                     {
//                             $pagestr.='<a href="'.self::getPrintPage($url, $i,$act).'">'.$i.'</a>';
//                     }
//             }
//             if($_pagecounts>$peind)
//             {///未到最后一页
//                     if($_pagecounts-1>$peind)
//                     {
//                             $end='<a href="'.self::getPrintPage($url, $_pagecounts-1,$act).'">'.($_pagecounts-1).'</a>'.$end;
//                     }
//                     $pagestr.='<span class="lue">...</span>'.$end;
//             }
//             $selects='<select name="sureurl" id="sureurl" onChange="javascript:var p=this.options[this.selectedIndex].value;document.location=p;">';
//             $select="";
// //            for($i=1;$i<=$_pagecounts;$i++)
// //            {
// //                    $chk="";
// //                    if($i==$_page){$chk=" selected"; }
// //                    $select.='<option value="'.self::getPrintPage($url, $i,$act).'"'.$chk.'>'.$i.'</option>';
// //            }
//             $selecte='</select>';
//             $selectstr=$selects.$select.$selecte;
//             if($xialakuang)
//             {
//                     $stre=$selectstr.'</div>';
//             }else
//             {
//                     $stre='</div>';
//             }
//             $sp = "?";
//             $pos = substr_count($url, "?");
//             if($pos > 0)
//             {
//                 $sp = '&';
//             }
           
//             $totals='<span >'.$total.' 跳转<input style="width:50px; height:25px; text-align:center;" type="text" name="page" data-url="'.$url.'" data-sp="'.$sp.'" onkeypress="javascript:if (event.keyCode == 13){var p=this.value;url=this.dataset.url;var sp=this.dataset.sp;url=url+sp+\'page=\'+p;if(parseInt(p)>0){document.location=url;} }"> 页</span>';
//             $restr=$strs.$pagestr.$totals.$stre;
//             return $restr;
    }
    public static function nextpage($pagesizes,$page=1)
    {
        $url=self::_backurl2();
        $sp = "?";
        $pos = substr_count($url, "?");
        if($pos > 0)
        {
            $sp = '&';
        }
        if((int)$page <=0)
        {
            $page = 1;
        }
        $_page = $page;
        $div = '<div style="margin:0 auto;text-align:center;">';
        $s1 = '<span>当前第 '.$_page.' 页,每页 '.$pagesizes.' 条记录</span>';
        $first='<a href="'.self::getPrintPage($url, $_page-1).'" class="prev"> 上一页 </a>';
        $end='<a href="'.self::getPrintPage($url, $_page+1).'" class="next"> 下一页 </a>';
        $jump = ' <span>跳转 <input style="width:50px; height:25px; text-align:center;" type="text" name="page" data-url="'.$url.'" data-sp="'.$sp.'" onkeypress="javascript:if (event.keyCode == 13){var p=this.value;url=this.dataset.url;var sp=this.dataset.sp;url=url+sp+\'page=\'+p;if(parseInt(p)>0){document.location=url;} }"> 页</span>';
        $str = $s1.$first.$end.$jump;
        $div2 = '</div>';
        return $div.$str.$div2;
    }
}
